﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Work1
{
//    一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
//请编写相关代码，
//1、捕获FormatException异常，并打印输出“异常已处理；
//2、捕获OverflowException异常，数值超出double范围的异常，并打印输出“异常已处理；
//3、捕获一般异常Exception异常。
//4、最终处理finally
//录入成绩结束后，请输出，总学生数，总分数，平均分。

    class Program
    {
        static void Main(string[] args)
        {
            ResultInput();
            Console.ReadKey();
        }
        public static void ResultInput()
        {
            //定义一个集合用于储存学生信息
            ArrayList arr = new ArrayList();

            string Name; //姓名
            double Score;  //成绩
            Console.WriteLine("请输入学生人数：");
            int studentNum = int.Parse(Console.ReadLine());
            double TotalScore = 0;   //总成绩

            for (int i = 0; i < studentNum;)
            {
                bool b = true;
                while(b)
                {
                    try
                    {
                        Console.WriteLine("第{0}位学生信息：",i+1);
                        Console.WriteLine("请输入你的姓名：");
                        Name = Console.ReadLine();
                        Console.WriteLine("请输入你的成绩：");
                        Score = Convert.ToDouble(Console.ReadLine());
                        Console.WriteLine($"姓名：{Name},成绩：{Score}");
                        Console.WriteLine("--------------------------------------------------");
                        TotalScore += Score;
                        b = false;
                        i++;
                    }
                    catch (FormatException f)
                    {
                        Console.WriteLine("异常已处理！");
                        Console.WriteLine("输入的数字格式不正确！" + f.Message);
                    }
                    catch (OverflowException o)
                    {
                        Console.WriteLine("异常已处理！");
                        Console.WriteLine(o.Message);
                        Console.WriteLine("输入的值已经超出 double 类型的最大值！");
                        
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                    finally
                    {
                        Console.WriteLine("\n");
                    }
                }
               
            }
            Console.WriteLine($"总学生数：{studentNum},总分数{TotalScore},平均分{TotalScore/studentNum}");
        }
    }
}
